Diakritika v InterBase
Otázka od: Jiri Cincura
16. 9. 2004 20:37
Ahoj,
mam v Interbase udelanou DB, kde mam texty s diakritikou. Charset mam na
WIN1250.
Pak se z D8 pomoci std. komponent pripojuju k teto DB. Vse je skvele, az na
na to, ze mam jeden SELECT typu:
'SELECT cislo, cd_id, name_cz, name_en, info FROM dily WHERE UPPER(name_cz)
like ''%'+UpperCase(Edit1.Text)+'%'' ORDER BY cislo ASC;'
Pokud ale Edit1.Text obsahuje ceske znaky, spadne mi to do vyjimky.
Nevite tedy nekdo, jak tam ty znaky dostat?
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Jakub Dusek
16. 9. 2004 20:57
Idealne pres parametry (co kdyz bude v nazvu dilu apostrof? . Ale
ta chyba je asi v tom, ze nepouzivas AnsiUpperCase (UpperCase
neprevede diakritiku spravne).
Query1.SQl.Text :=
'SELECT cislo, cd_id, name_cz, name_en, info FROM dily WHERE UPPER(name_cz) like :param0 ORDER BY cislo ASC;'
Query1.Params[0].AsString = '%' + AnsiUpperCase(Edit1.Text) + '%'.
Pokud to nepomuze, posli text vyjimky.
Jakub Dusek
----------------------------------------------------------------------
web: http://www.corexpert.com, mobile: +420 604 615 795, ICQ: 86063232
odesilani smsek, vizitek, log a melodii, snadna integrace do Vaseho IS
=> Sms GateKeeper, Sms GateKeeper Service
======================================================================
Thursday, September 16, 2004, 9:10:54 PM, you wrote:
JC> Ahoj,
JC> mam v Interbase udelanou DB, kde mam texty s diakritikou. Charset mam na
JC> WIN1250.
JC> Pak se z D8 pomoci std. komponent pripojuju k teto DB. Vse je skvele, az na
JC> na to, ze mam jeden SELECT typu:
JC>
'SELECT cislo, cd_id, name_cz, name_en, info FROM dily WHERE UPPER(name_cz)
JC> like ''%'+UpperCase(Edit1.Text)+'%'' ORDER BY cislo ASC;'
JC> Pokud ale Edit1.Text obsahuje ceske znaky, spadne mi to do vyjimky.
JC> Nevite tedy nekdo, jak tam ty znaky dostat?
JC> --
JC> Jiri Cincura
JC> e-mail: mailto:jiri@cincura.net;
JC> mailto:xcincura@informatics.muni.cz
JC> ICQ: 314711544
JC> web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Jiri Cincura
17. 9. 2004 7:52
Jakub Dusek wrote:
>
> Pokud to nepomuze, posli text vyjimky.
>
Normalne v dotazu (s i bez Ansi...):
arithmetic exception, numeric overflow, or string truncation Cannot
transliterate character between character sets.
S parametrem:
Project Project1.exe encountered unhandled exception class
Borland.Vcl.IB.EIBClientError. Process stopped. Use Step or Run to continue.
Se to ani nespusti. Hned pri startu (pri CreateForm, jakmile napisu heslo do
DB, pritom v OnCreate ja nic nemam).Taky jsem na to vcera koukal jako
blazen. Proto jsem to dal rovnou do dotazu.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Jiri Cincura
17. 9. 2004 6:59
Jakub Dusek wrote:
> Idealne pres parametry (co kdyz bude v nazvu dilu apostrof? . Ale ta
Uz jsem to rozjel. Pomohl restart serveru. ;)
Ale mam tu dalsi:
Index je mimo rozsah. Index musi byt nezaporny a musi byt mensi nez velikost
kolekce. Nazev parametru: index.
Pritom Params mam 4 a davam to do nulteho.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Jiri Cincura
17. 9. 2004 11:11
Jakub Dusek wrote:
> Idealne pres parametry (co kdyz bude v nazvu dilu apostrof? . Ale ta
> chyba je asi v tom, ze nepouzivas AnsiUpperCase (UpperCase neprevede
> diakritiku spravne).
>
> Query1.SQl.Text :=
'SELECT cislo, cd_id, name_cz, name_en, info FROM dily
> WHERE UPPER(name_cz) like :param0 ORDER BY cislo ASC;'
> Query1.Params[0].AsString = '%' + AnsiUpperCase(Edit1.Text) + '%'.
>
> Pokud to nepomuze, posli text vyjimky.
Tak jsem konecne rozjel ty Params. Ja blbec mel Params pred selectem, proto
jsem jich mel vzdy 0. No ji patek.
Ale zpet k problemu. Porad tam nemuzu dostat tu diakritku.
arithmetic exception, numeric overflow, or string truncation Cannot
transliterate character between character sets.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Jakub Dusek
18. 9. 2004 9:04
Aha uz asi tusim, ale v tom pripade ti tu lepe poradi nejaky IBista
nebo FBista, ja jsem Oraclista Myslim, ze se musi v selectu
nastavit znakova sada, vim ze to ma neco spolecneho s COLLATE (mrkni
do helpu), porad se tu o tom mluvi
Jakub Dusek
----------------------------------------------------------------------
web: http://www.corexpert.com, mobile: +420 604 615 795, ICQ: 86063232
odesilani smsek, vizitek, log a melodii, snadna integrace do Vaseho IS
=> Sms GateKeeper, Sms GateKeeper Service
======================================================================
Friday, September 17, 2004, 11:50:12 AM, you wrote:
JC> Tak jsem konecne rozjel ty Params. Ja blbec mel Params pred selectem, proto
JC> jsem jich mel vzdy 0. No ji patek.
JC> Ale zpet k problemu. Porad tam nemuzu dostat tu diakritku.
JC> arithmetic exception, numeric overflow, or string truncation Cannot
JC> transliterate character between character sets.
Odpovedá: Jiri Cincura
18. 9. 2004 9:58
Jakub Dusek wrote:
> Aha uz asi tusim, ale v tom pripade ti tu lepe poradi nejaky IBista nebo
> FBista, ja jsem Oraclista Myslim, ze se musi v selectu nastavit
> znakova sada, vim ze to ma neco spolecneho s COLLATE (mrkni do helpu),
> porad se tu o tom mluvi
Collate je na trideni (treba CH, apod.).
Ale prisel jsem na to. Pred "kriticke" znaky staci dat _WIN1250. Treba:
select * from dily where UPPER(name_cz) like _WIN1250'%E%'
Ale i tak diky.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Jiri Cincura
18. 9. 2004 10:06
Jiri Cincura wrote:
>
> Ale prisel jsem na to. Pred "kriticke" znaky staci dat _WIN1250. Treba:
> select * from dily where UPPER(name_cz) like _WIN1250'%E%'
Nadseni opadlo.
Jelo to jen v konzoli, ale v kodu uz je to horsi.
No nic, budu zkouset dal. Kdyby nekdo vedet co s tim, pls, napiste to sem.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Lauko Stefan
18. 9. 2004 10:48
> No nic, budu zkouset dal. Kdyby nekdo vedet co s tim, pls, napiste to sem.
Ahoj,
do IbDatabase.Params zapis toto:
USER_NAME=...
PASSWORD=...
lc_ctype=WIN1250
Lauko.